package com.ruoyi.business.service;


import com.ruoyi.bizsys.domain.AppUser;
import com.ruoyi.bizsys.domain.CreditAccount;
import com.ruoyi.bizsys.domain.CreditApply;
import com.ruoyi.bizsys.domain.LoanOrder;
import com.ruoyi.business.domain.*;

import java.text.ParseException;
import java.util.List;

public interface IOldLoanService {

    void processLoanReq(LoanReq loanReq);

    void processLoanReqV228(LoanReq loanReq);

    void processLoanReqAgain(LoanOrder loanOrder);

    /**
     * @param appUser
     * @param creditAccountId
     * @param loanOrder
     * @param isReTryTask     区分是否重试定时任务。定时任务调用时 若 放款流水号已存在则需要返回一个false。isReTryTask=false时逻辑不变
     * @return
     */
    boolean verifyPayTrans(AppUser appUser, Long creditAccountId, LoanOrder loanOrder, boolean isReTryTask);

    CustAccount getCustAccount();

    List<CustLoanIou> getCustNotSettledIou();

    void dealSuccessLoan(AppUser appUser, Long creditAccountId, LoanOrder loanOrder);

    void dealFailedLoan(AppUser appUser, Long creditAccountId, LoanOrder loanOrder);

    void saveLoanErrorLog(LoanReq loanReq, Exception e);

    void rulePass(String loanSerialNo);

    void updateFrozenAndLoanStatus(LoanOrder loanOrder, Long creditAccountId, Integer loanStatus, String errMsg);

    /**
     * 获取还款日T-3，T-0的数据
     *
     * @return
     */
    List<RaiseLimitTaskVo> getCustNotSettledIou0_3();

    String againTrigger(LoanOrder loanOrder);

    void createContractPdf(String contractNo, LoanOrder loanOrder);

    void transferProcess(LoanOrder loanOrder, AppUser appUser, CreditAccount creditAccount);


}
